package lanQiaoBei.数学知识.高斯消元;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


//原题链接 https://blog.csdn.net/m0_51111980/article/details/117933457
/*
3
1.00 2.00 -1.00 -6.00
2.00 1.00 -3.00 -9.00
-1.00 -1.00 2.00 7.00

1.00
-2.00
3.00

 */
public class P1 {
       static BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
       final static int N=110;
       static double a[][]=new double[N][N],eps=1e-6;
       static  int n;
       
       static void swap(int x1,int y1,int x2,int y2){
    	      double t=a[x1][y1];
    	      a[x1][y1]=a[x2][y2];
    	      a[x2][y2]=t;
       }
       static int gauss(){
    	      int r,c;
    	      for(c=0,r=0;c<n;c++){
    	    	  int t=r;
    	    	  for(int i=r;i<n;i++)
    	    		  if(Math.abs(a[i][c])>Math.abs(a[t][c]))
    	    			  t=i;
    	    	  if(Math.abs(a[t][c])<eps)continue;
    	    	  for(int i=c;i<=n;i++)
    	    		  swap(r,i,t,i);
    	    	  for(int i=n;i>=c;i--)
    	    		  a[r][i]/=a[r][c];
    	    	  for(int i=r+1;i<n;i++)
    	    		  if(Math.abs(a[i][c])>eps){
    	    			  for(int j=n;j>=c;j--)
    	    				  a[i][j]-=a[r][j]*a[i][c];
    	    		  }
    	    	  r++;
    	      }
    	      if(r<n){
    	    	  for(int i=r;i<n;i++)
    	    		  if(Math.abs(a[i][n])>eps)return 0;
    	    	  return 2;
    	      }
    	      for(int i=n-1;i>=0;i--)
    	    	  for(int j=i+1;j<n;j++)
    	    		  a[i][n]-=a[j][n]*a[i][j];
    	      return 1;
       }
       public static void main(String[] args) throws IOException {
		      n=Integer.parseInt(br.readLine());
		      for(int i=0;i<n;i++){
		    	  String[]ss=br.readLine().split(" ");
		    	  for(int j=0;j<n+1;j++)
		    		  a[i][j]=Double.parseDouble(ss[j]);
		      }
		      int t=gauss();
		      if(t==0)System.out.print("No soluation");
		      else if(t==1){
		    	   for(int i=0;i<n;i++)
		    		   System.out.println(String.format("%.2f",a[i][n]));
		      }else System.out.print("Many Soluations");
	}
}




